package com.itcast.security.service;

import com.itcast.common.model.dto.request.LoginReqDTO;
import com.itcast.common.model.dto.request.MemberLoginReqDTO;
import com.itcast.common.model.dto.request.WechatLoginReqDTO;
import com.itcast.common.model.dto.response.LoginResDTO;

/**
 * 登录相关业务
 *
 * @author itcast
 */
public interface ILoginService {
    /**
     * 管理员登录
     *
     * @param loginReqDTO 管理员登录请求模型
     * @return token
     */
    LoginResDTO adminLogin(LoginReqDTO loginReqDTO);

    /**
     * 普通用户登录
     *
     * @param memberLoginReqDTO 普通用户登录请求模型
     * @return token
     */
    LoginResDTO memberLogin(MemberLoginReqDTO memberLoginReqDTO);

    /**
     * 发送登录验证码
     *
     * @param phone 手机号
     */
    void sendCode(String phone);

    /**
     * 普通用户微信登录
     *
     * @param wechatLoginReqDTO 微信登录请求模型
     * @return 登录token
     */
    LoginResDTO wechatLogin(WechatLoginReqDTO wechatLoginReqDTO);
}
